/**
 * 
 */
package com.xpec.c4.service.module.datacenter.player.db;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import com.ms.player.PlayerUserType;
import com.xpec.c4.db.model.log.basic.BasicTransactionLogModel;

/**
 * 玩家金錢異動的 log
 * 
 * @author TW15010
 */
@Entity
@Table(name = "player_money_change")
@org.hibernate.annotations.Table(
		appliesTo = "player_money_change", indexes =
		{
				@org.hibernate.annotations.Index(name = "IDX_EVENT_DATE", columnNames = {"eventDate"}),
		}
)
public class PlayerMoneyChangeLogModel extends BasicTransactionLogModel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 3836795575812138009L;

	/** account guid */
	private String accountId;

	/** player guid */
	private String playerId;

	/** player name */
	private String playerName;

	/** 使用者類型 {@link PlayerUserType} */
	private int userType;

	/** 遊戲id */
	private String gameId;

	/** 遊戲名 */
	private String gameName;

	/** 遊戲館id */
	private String gameHallId;

	/** 遊戲館名 */
	private String gameHallName;

	/** 試玩幣 異動數值 */
	private BigDecimal trialChangeValue = BigDecimal.ZERO;

	/** 試玩幣 異動前數值 */
	private BigDecimal trialBeforeChange = BigDecimal.ZERO;

	/** 試玩幣 變更後數值 */
	private BigDecimal trialAfterChange = BigDecimal.ZERO;

	/** 金幣 異動數值 */
	private BigDecimal goldChangeValue = BigDecimal.ZERO;

	/** 金幣 異動前數值 */
	private BigDecimal goldBeforeChange = BigDecimal.ZERO;

	/** 金幣 變更後數值 */
	private BigDecimal goldAfterChange = BigDecimal.ZERO;

	/** 幸運金 異動數值 */
	private BigDecimal luckyChangeValue = BigDecimal.ZERO;

	/** 幸運金 異動前數值 */
	private BigDecimal luckyBeforeChange = BigDecimal.ZERO;

	/** 幸運金 變更後數值 */
	private BigDecimal luckyAfterChange = BigDecimal.ZERO;

	/** 行為id */
	private int changeWay;

	/** 行為說明 */
	private String changeWayDesc;
	
	/** 營運商 id */
	private String venderId;

	/** 子營運商 id */
	private String subVenderId;

	public String getPlayerName() {
		return playerName;
	}

	public void setPlayerName(String playerName) {
		this.playerName = playerName;
	}

	public String getGameHallId() {
		return gameHallId;
	}

	public void setGameHallId(String gameHallId) {
		this.gameHallId = gameHallId;
	}

	public int getChangeWay() {
		return changeWay;
	}

	public void setChangeWay(int changeWay) {
		this.changeWay = changeWay;
	}

	public String getChangeWayDesc() {
		return changeWayDesc;
	}

	public void setChangeWayDesc(String changeWayDesc) {
		this.changeWayDesc = changeWayDesc;
	}

	public String getAccountId() {
		return accountId;
	}

	public void setAccountId(String accountId) {
		this.accountId = accountId;
	}

	public String getPlayerId() {
		return playerId;
	}

	public void setPlayerId(String playerId) {
		this.playerId = playerId;
	}

	public String getGameHallName() {
		return gameHallName;
	}

	public void setGameHallName(String gameHallName) {
		this.gameHallName = gameHallName;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialChangeValue() {
		return trialChangeValue;
	}

	public void setTrialChangeValue(BigDecimal trialChangeValue) {
		this.trialChangeValue = trialChangeValue;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialBeforeChange() {
		return trialBeforeChange;
	}

	public void setTrialBeforeChange(BigDecimal trialBeforeChange) {
		this.trialBeforeChange = trialBeforeChange;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialAfterChange() {
		return trialAfterChange;
	}

	public void setTrialAfterChange(BigDecimal trialAfterChange) {
		this.trialAfterChange = trialAfterChange;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getGoldChangeValue() {
		return goldChangeValue;
	}

	public void setGoldChangeValue(BigDecimal goldChangeValue) {
		this.goldChangeValue = goldChangeValue;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getGoldBeforeChange() {
		return goldBeforeChange;
	}

	public void setGoldBeforeChange(BigDecimal goldBeforeChange) {
		this.goldBeforeChange = goldBeforeChange;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getGoldAfterChange() {
		return goldAfterChange;
	}

	public void setGoldAfterChange(BigDecimal goldAfterChange) {
		this.goldAfterChange = goldAfterChange;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getLuckyChangeValue() {
		return luckyChangeValue;
	}

	public void setLuckyChangeValue(BigDecimal luckyChangeValue) {
		this.luckyChangeValue = luckyChangeValue;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getLuckyBeforeChange() {
		return luckyBeforeChange;
	}

	public void setLuckyBeforeChange(BigDecimal luckyBeforeChange) {
		this.luckyBeforeChange = luckyBeforeChange;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getLuckyAfterChange() {
		return luckyAfterChange;
	}

	public void setLuckyAfterChange(BigDecimal luckyAfterChange) {
		this.luckyAfterChange = luckyAfterChange;
	}

	public String getGameId() {
		return gameId;
	}

	public void setGameId(String gameId) {
		this.gameId = gameId;
	}

	public String getGameName() {
		return gameName;
	}

	public void setGameName(String gameName) {
		this.gameName = gameName;
	}

	public int getUserType() {
		return userType;
	}

	public void setUserType(int userType) {
		this.userType = userType;
	}

	@Column(columnDefinition="VARCHAR(50) NOT NULL default 'TONWA'")
	public String getVenderId() {
		return venderId;
	}

	public void setVenderId(String venderId) {
		this.venderId = venderId;
	}

	@Column(columnDefinition="VARCHAR(50) NOT NULL default 'TONWA'")
	public String getSubVenderId() {
		return subVenderId;
	}

	public void setSubVenderId(String subVenderId) {
		this.subVenderId = subVenderId;
	}
}